package com.itheima.reggie.exception;

import com.itheima.reggie.common.R;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/*
 @RestControllerAdvice 表明该类是一个全局异常处理器。
 */
@RestControllerAdvice
public class GlobalExceptionHandler {


    /*
   @ExceptionHandler : 用于指定这个方法处理那些类型的异常的。

    */
    @ExceptionHandler(NameExistsException.class)
    public R exceptionHandler(NameExistsException e){
        e.printStackTrace(); //打印异常信息，否则控制台没有任何的内容
        return R.error(e.getMessage()+"已经存在");
    }

    @ExceptionHandler(CustomerException.class)
    public R exceptionHandler(CustomerException e){
        e.printStackTrace(); //打印异常信息，否则控制台没有任何的内容
        return R.error(e.getMessage());
    }

    /*
    @ExceptionHandler : 用于指定这个方法处理那些类型的异常的。

     */
    @ExceptionHandler(Exception.class)
    public R exceptionHandler(Exception e){
        e.printStackTrace(); //打印异常信息，否则控制台没有任何的内容
        return R.error("目前访问人数过多，请稍后！");
    }
}
